package javafx.com;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.paint.Paint;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class main extends Application {

	public static void main(String[] args) {
		launch(args);
	}

	@Override
	public void start(Stage stage) throws Exception {

		Group group = new Group();
		Scene scene = new Scene(group);
		stage.setScene(scene);
		stage.setTitle("javagfx");
		stage.setWidth(800);
		stage.setHeight(800);
		
		// 标签
		Label label = new Label("我是标签");
		label.setLayoutX(10);
		label.setLayoutY(100);
		label.setFont(Font.font(14));
		label.setTextFill(Paint.valueOf("red"));

		// 输入框--node节点
		TextField textField = new TextField();
//		textField.setText("文本输入框");
		textField.setLayoutX(100);
		textField.setLayoutY(100);
		textField.setFont(Font.font(16));
		
		// 输入框外显提示
		Tooltip tooltip  = new Tooltip();
		tooltip.setText("这是提示语");
		tooltip.setFont(Font.font(14));
		// 将提示语添加到输入框中
		textField.setTooltip(tooltip);// 提示效果未生效
		
		// 输入框内提示
		textField.setPromptText("请输入7位以下字符!");
		textField.setFocusTraversable(false);
		
		textField.textProperty().addListener(new ChangeListener<String>() {

			@Override
			public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
			
				if (newValue.length()>7) {
					// 如果超过7个字符,就无法输入
					textField.setText(oldValue);
				}
				
			}
			
		});
		
		// 选择监听
		textField.selectedTextProperty().addListener(new ChangeListener<String>() {

			@Override
			public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
				System.out.println("选中的字符: "+newValue);
			}
		});
		
		group.getChildren().add(label);
		group.getChildren().add(textField);
		
		stage.show();
		
	}

}
